//app.js
import { getUserInfo, serverIp, getSession, saveSession } from 'utils/util.js';
App({
  onLaunch: function () {
    const _this = this;

    this.checkSession({
      suc:  (res) => {
        //session 未过期，并且在本生命周期一直有效
        _this.globalData = {
          hasUserInfo: true,
          userInfo: res
        };
        if (_this.userInfoReadyCallback) {
          _this.userInfoReadyCallback(res);
        }
  
      },
      fail: () => {
        console.log(222)
        // session_key 已经失效，需要重新执行登录流程
          wx.login({
            success: res => {
              //发送 res.code 到后台换取 openId, sessionKey, unionId
              //记录是否授权过
              wx.request({
                url: serverIp + '/api/weixin/getuserbycode/'+ res.code,
                header: {
                  'Cookie': getSession()
                },
                success: (res2) => {
                  console.log(res2)
                  if (res2.data.res.id) {
                    //以前授权过且是公司的人
                    // TODO
                    _this.globalData = {
                      hasUserInfo: true,
                      userInfo: res2.data.res
                    };
                  } else {
                    //未授权过或不是公司的人
              
                  }

                  //userInfoReadyCallback在别的组件里设置
                  if (_this.userInfoReadyCallback) {
                    _this.userInfoReadyCallback(res2.data.res)
                  }
                }
              })

            }
          });
    
        }
      })

  },
  checkSession({suc, fail}) {

      wx.request({
        url: serverIp + '/api/weixin/getuserbysession',
        header: {
          'cookie': getSession()
        },
        success(res) {
          saveSession(res.header["Set-Cookie"])
          //返回用户信息
          if (res.data.res) {
            suc && suc(res.data.res);
          } else {
            fail && fail();
          }
        }
      });
  
  },
  globalData: {
    hasUserInfo: false,
    userInfo: null,
  }
})